﻿using LinkyPOS.Class;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LinkyPOS
{
    public partial class Masraflar : Form
    {
        public Masraflar()
        {
            InitializeComponent();
        }

        linkDataContext ly = new linkDataContext();
        masraflar2 m = new masraflar2();
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {


                m.Tutar = Convert.ToDouble(txttutar.Text.Replace('.', ','));
                m.Tip = comboBox1.Text;
                m.Aciklama = txtaciklama.Text;
                m.Date = DateTime.Now;
                m.masrafekle();





                Masraflarilistele();

                txttutar.Clear();
                txtaciklama.Clear();
                m.gunlukmasraf();
                txtMasraf.Text = "Toplam Günlük Masraf Tutuarı =" + m.Toplamtutar.ToString() + " Tl.";

                // bu seviyede masraf local veritabanina eklendigi anda  uzak serverada eklenmeli 
                // ancak uzak serverda hata alirsa eklyemedigi datayi cache bellege almali ve ve internet geldiginde ekleyemedigi datayi eklemeli
                // bu seviyede alinan hatalir monitor edilmesi cok onemlidir

                /*
                  sqlcmd.Parameters.AddWithValue("@subekodu",subekodu);
            sqlcmd.Parameters.AddWithValue("@subemasrafID",subemasrafID);
            sqlcmd.Parameters.AddWithValue("@masraftipi",masraftipi);
            sqlcmd.Parameters.AddWithValue("@aciklama",aciklama);
            sqlcmd.Parameters.AddWithValue("@deger",deger);
            sqlcmd.Parameters.AddWithValue("@tarih",tarih);
            sqlcmd.Parameters.AddWithValue("@isaktive", 1);
                 
                 */
                mysqlserver s = new mysqlserver();
                s.subemasrafID = 1; // simdilik statik ekleneme apiyoruz 
                s.masraftipi = m.Tip;
                s.aciklama = m.Aciklama;
                s.deger = (decimal)m.Tutar;
                s.tarih = context.sadecesaat();

                if (s.masraf_ekle())
                {

                    // sorun yok


                }
                else 
                {
                    // sunucuya eklenemeyen masrafin sistem idsi locala eklendi daha sonra senkronize edilmek istendiginde bu idlerden cekilecek
                    SqlConnection sqlcon = connection.baglanti;
                    SqlCommand sqlcmd = new SqlCommand("inser into masrafhatalari (hataliID) values (@ID)",sqlcon);
                    sqlcmd.Parameters.AddWithValue("@ID",s.subemasrafID);

                    sqlcon.Open();

                    sqlcmd.ExecuteNonQuery();

                    sqlcon.Close();
                
                
                
                }




            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }


        private void button2_Click(object sender, EventArgs e)
        {
            try
            {

                masraflar masrafsil = (masraflar)listView1.FocusedItem.Tag;
                ly.masraflars.DeleteOnSubmit(masrafsil);
                ly.SubmitChanges();
                Masraflarilistele();




                listView1.Items.Clear();
                Masraflarilistele();
                m.gunlukmasraf();
                txtMasraf.Text = "Toplam Günlük Masraf Tutuarı =" + m.Toplamtutar.ToString() + " Tl.";

                mysqlserver s = new mysqlserver();
                s.subemasrafID = masrafsil.masrafID;
                s.masraflari_guncelle();

            }
            catch (Exception d)
            {

                err2 er = new err2(d.ToString(), this.Name);
            }
        }

        private void Masraflar_Load(object sender, EventArgs e)
        {
            this.Location = new Point(0, 0);
            this.Size = Screen.PrimaryScreen.WorkingArea.Size;
            m.gunlukmasraf();
            Masraflarilistele();
            txtMasraf.Text = "Toplam Günlük Masraf Tutuarı =" + m.Toplamtutar.ToString() + " Tl.";
            label3.Text = DateTime.Now.ToString("d") + " için masraf listesi";
        }

        private void Masraflarilistele()
        {
            listView1.Items.Clear();

            List<masraflar> calisanlar = (from emp in ly.masraflars
                                          where emp.tarih == DateTime.Now
                                          select emp).ToList();
            //List<Employee> emps = (from emp in db.Employees
            //                       select emp).ToList();


            foreach (var item in calisanlar)
            {


                ListViewItem li = new ListViewItem();
                li.Text = item.masrafID.ToString();
                li.SubItems.Add(item.tutari.ToString());

                li.SubItems.Add(item.turu);
                li.SubItems.Add(item.aciklama);

                listView1.Items.Add(li);
                li.Tag = item;
            }


        }


    }
}
